#pragma once
#ifndef _ITimer_header_included_
#define _ITimer_header_included_

#include <Engine/SmartPtr.h>

namespace fastbird
{
	class CLASS_DECLSPEC ITimer : public ReferenceCounter
	{
	public:
		typedef float TIME_PRECISION;
		static ITimer* CreateTimer();

		virtual ~ITimer() {}
		virtual void Tick() = 0;
		virtual TIME_PRECISION GetTime() = 0;
		virtual TIME_PRECISION GetDeltaTime() = 0;		
		virtual void Reset() = 0;
		virtual __int64 GetTickCount() = 0;
		virtual __int64 GetFreq() const = 0;
	};
}

#endif //_ITimer_header_included_